Virtual Network Computing (VNC) can be used in a graphical desktop sharing system that allows a client computer to remotely use the processing capabilities of a server computer. For example, the client can transmit keyboard and mouse events to the server, and the server can send screen updates back to the client. Thus, the client can be used as a control console, which sends commands to the server and watches the computing results of the server at a local display screen. The client and the server interact using a communication protocol (e.g., the Remote Frame Buffer (RFB) protocol) over a VNC connection.
VNC is not a secure protocol. Conventional VNC does not have built-in security mechanisms, such as data encryption. Therefore, data streams transmitted on a VNC connection over an untrusted network are subject to snooping by an intermediate agent performing packet capture.